1. Field of the Invention
The invention is in the field of enterprise software, and more particularly to adding functionality to existing enterprise software.
2. Related Art
Enterprise software, otherwise known as Enterprise Application Software (EAS), is software used by organizations such as businesses or government to perform organizational functions. Examples of enterprise software include Human Resource Management Systems (HRMSs) and Customer Relationship Management (CRM) software distributed by such companies as Oracle Corporation of Redwood City, Calif. who acquired PeopleSoft, Inc. of Pleasanton, Calif. in 2005.
As the use of such software has increased so has the desire for organizations to customize such software to provide additional functionality to support their particular operational needs. Unlike software primarily operated by individuals to perform individual tasks on standalone computers, which is typically licensed via a shrink-wrapped software license which does not allow customization, enterprise software is commonly provided with access to the underlying instructions of the enterprise software and programmatic tools for such customization (e.g., PeopleCode and PeopleTools as provided by Oracle Corp./PeopleSoft, Inc.) and is licensed accordingly.
However, customization of enterprise software comes with its own challenges. At a minimum, an organization wishing to customize their enterprise software must know how to use the programmatic tools for the enterprise software, decide what customizations it wants and determine how to implement them using the programmatic, tools. But even more significantly, such customizations can create conflicts with the enterprise software, particularly with subsequent new releases of the enterprise software. Such conflicts can be created by an improperly implemented customization or simply by the newly released enterprise software being at odds with the customization.
What is needed, therefore, is a way to seamlessly integrate additional functionality without causing the typical customization conflicts and issues and, further, to easily be able to uninstall such additional functionality when a new release is received and after which be able to easily reinstall the additional functionality as desired.